4
תגובות
שלום.
אני מנסה לבנות מחלקת משתמשים. המשתמשים מאוחסנים כמובן במסד הנתונים MYSQL.
העובדה הזאת גורמת להרבה קודי mysqli להיות קשורים במחלקה עצמה.. ואני לא יודע עד כמה זה יעיל. חצי מהמחלקה בערך זה רק קודים שקוראים מהמסד.. זאת הדרך לכתוב מחלקה כזאת? או שיש דרך אחרת שגורמת למינימום התקשרות עם המסד?

4 תשובות

avatar ענה iiddaannyy ב 25 ליולי 2012 #

כשצריכים לעבוד עם המסד - עובדים עם המסד. אין עם זה בעיה.

avatar ענה Y_Y ב 26 ליולי 2012 #

המפתח הוא לשאוף לכמה שפחות פתיחות וסגירות חיבור..תוודא שאתה פועל על חיבור בודד ורציף לDB ראה ערך סינגלטון

איפה שאפשר לצמצם שאילתות למנוע המון טרנזקציות

תן כמה שורות קודות שיהיה אפשר לראות מה הולך קשה לדמיין את זה

avatar ענה intval ב 26 ליולי 2012 #

השאלה לא כל כך ברורה.
יש לך מחלקה שמייצגת משתמש ? יש לה מאפיינים? יש לה פעולות?
אם הפעולות האלה קשורות למסד (לעדכן סיסמה למשל) אז הפעולה של העדכון תשתמש במחלקה שאחראית להתקשרות עם מסד ותשלח את השאילתה המתאימה ולכן במחלקה של המשתמש יהיו פעולות לעבודה עם מסד.

דרך אחרת היא להשתמש ב ORM, כלי נוסף שיאפשר לך במחלקה של המשתמש רק לכתוב אילו מאפיינים יש למשתמש ובאיזו טבלה שמורים המשתמשים וברגע שתעדכן את אחד המאפיינים האלה - הכלי יידע ליצור לבד את השאילתות ולבצע אותה על המסד בלי שאתה תצטרך לכתוב שאילתות בעצמך.

כמה מה-ORMים הפופולארים יותר:
redbean אחת המגניבות
propel
doctrine orm
php active record שבה אני משתמש כחלק מ yii

אם כל זה נראה לך מסובך כרגע ואתה לא רוצה לעבור לשימוש בפריימוורק וכלים אחרים כלשהם,
כמו שעידן אמר, אין שום בעיה בזה שפעולות על משתמש ייגשו למסד נתונים.

avatar ענה pol292 ב 27 ליולי 2012 #

הYII משתמש ב active record בתוכו או שהוא שינה אותו?